package com.view;

import com.panel.MyPanel;
import com.util.GameUtil;
import com.util.TransformUtil;

import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Arrays;

/**
 * @author: Combo
 * @version: 1.0
 * @date: 2020/12/28
 * @description: 登录窗口
 */
public class LoginFrame extends JFrame {

    JLabel name; // 用户名
    JTextField nameInput; // 输入框
    JLabel password; // 密码
    JPasswordField passwordInput; // 输入框
    JButton loginBtn; // 登录按钮
    JButton cancelBtn; // 取消按钮
    // 登录窗体
    public LoginFrame(){

        // 设置字体
        name = new JLabel("用户名");
        name.setFont(new Font("微软雅黑", Font.BOLD, 18));
        password = new JLabel("密码");
        password.setFont(new Font("微软雅黑", Font.BOLD, 18));

        // 布局方式
        name.setBounds(20, 220, 100, 30);
        this.add(name);
        password.setBounds(20, 280, 100, 30);
        this.add(password);

        // 用户名输入框
        nameInput = new JTextField();
        nameInput.setBounds(80, 220, 100, 30);
        // 输入框凹陷效果
        nameInput.setBorder(BorderFactory.createLoweredBevelBorder());
        // 输入框背景透明
        nameInput.setOpaque(false);
        this.add(nameInput);

        // 密码输入框
        passwordInput = new JPasswordField();
        passwordInput.setBounds(80, 280, 100, 30);
        // 输入框凹陷效果
        passwordInput.setBorder(BorderFactory.createLoweredBevelBorder());
        // 输入框背景透明
        passwordInput.setOpaque(false);
        this.add(passwordInput);

        // 登录按钮
        loginBtn = new JButton("登录");
        loginBtn.setBounds(45, 350, 60, 36);
        this.add(loginBtn);

        // 登录按钮事件监听
        loginBtn.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                String userName = nameInput.getText();
                String password = TransformUtil.charArrToString(passwordInput.getPassword());
                // 验证用户密码
               if (userName.equals("admin") && password.equals("admin")){
//                   JOptionPane.showMessageDialog(null, "欢迎" + userName + "来到无法酷跑!");
                   new MainFrame(); // 进入主界面
                   dispose();       // 关闭当前界面
               } else {
                 JOptionPane.showMessageDialog(null, "用户名或密码错误,请检查后重新输入");
               }
            }
        });

        // 取消按钮
        cancelBtn = new JButton("取消");
        cancelBtn.setBounds(135, 350, 60, 36);
        this.add(cancelBtn);
        // 取消按钮 点击事件
        cancelBtn.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                dispose();
            }
        });

        // 给登录窗口添加背景
        MyPanel loginPanel = new MyPanel("images/login.jpg", 0, 0, 900, 530);
        this.add(loginPanel);

        this.setSize(900, 530);
        this.setLocationRelativeTo(null); // 窗口位置 居中
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        this.setUndecorated(true);

        // 设置窗口图标
        this.setIconImage(GameUtil.getImage("images/logo.png"));
        this.setVisible(true);
    }

    public static void main(String[] args) {
        new LoginFrame();
    }
}
